RT

您所在的位置:网站首页 micropython machine模块 RT

RT

2024-07-14 23:14:21| 来源: 网络整理| 查看: 265

RT-Thread 软件包-MicroPython用户手册-MicroPython库① RT-Thread 软件包-MicroPython用户手册-MicroPython库①MicroPython 库MicroPython 标准库MicroPython 特定库 维护人:

RT-Thread 软件包-MicroPython用户手册-MicroPython库①

在这里插入图片描述

MicroPython 库 MicroPython 标准库 Builtin functions and exceptions – 内置函数与异常cmath – 复数运算函数功能gc – 控制垃圾收集器math – 数学函数功能sys – 系统特定功能uarray – 数组存储功能ubinascii – 二进制与 ASCII 码转换功能ucollections – 集合与容器类型uerrno – 系统错误码uhashlib – 哈希算法uheapq – 堆队列算法uio – 输入输出流ujson – JSON 编解码uos – 基本的操作系统服务ure – 正则表达式uselect – 在一组 streams 上等待事件usocket – socket 模块ussl – SSL/TLS 模块ustruct – 原生数据类型的打包和解包utime – 时间相关功能uzlib – zlib 解压_thread – 多线程支持 MicroPython 特定库

在 RT-Thread 移植的 MicroPython 版本中,实现了如下特定功能库:

micropython – 实现 MicroPython 内部功能访问与控制

rtthread – RT-Thread 系统功能模块

machine – 硬件控制模块

machine – 与硬件相关的功能 machine 模块包含与特定开发板上的硬件相关的特定函数。 在这个模块中的大多数功能允许实现直接和不受限制地访问和控制系统上的硬件块(如CPU,定时器,总线等)。如果使用不当,会导致故障,死机,崩溃,在极端的情况下,硬件会损坏。

需要注意的是,由于不同开发板的硬件资源不同,MicroPython 移植所能控制的硬件也是不一样的。因此对于控制硬件的例程来说,在使用前需要修改相关的配置参数来适配不同的开发板,或者直接运行已经对某一开发板适配好的 MicroPython 示例程序。本文档中的例程都是基于 RT-Thread IoT Board 潘多拉开发板而讲解的。

函数 复位相关函数 machine.info() 显示关于系统介绍和内存占用等信息。

machine.rest() 重启设备,类似于按下复位按钮。

machine.reset_cause() 获得复位的原因,查看可能的返回值的常量。

中断相关函数 machine.disable_irq() 禁用中断请求。返回先前的 IRQ 状态,该状态应该被认为是一个未知的值。这个返回值应该在 disable_irq 函数被调用之前被传给 enable_irq 函数来重置中断到初始状态。

machine.enable_irq(state) 重新使能中断请求。状态参数应该是从最近一次禁用功能的调用中返回的值。

功耗相关函数 machine.freq() 返回 CPU 的运行频率。

machine.idle() 阻断给 CPU 的时钟信号,在较短或者较长的周期里减少功耗。当中断发生时,外设将继续工作。

machine.sleep() 停止 CPU 并禁止除了 WLAN 之外的所有外设。系统会从睡眠请求的地方重新恢复工作。为了确保唤醒一定会发生,应当首先配置中断源。

machine.deepsleep() 停止 CPU 和所有外设(包括网络接口)。执行从主函数中恢复,就像被复位一样。复位的原因可以检查 machine.DEEPSLEEP 参数获得。为了确保唤醒一定会发生,应该首先配置中断源,比如一个引脚的变换或者 RTC 的超时。

常数 IRQ 唤醒值

machine.IDLE machine.SLEEP machine.DEEPSLEEP

复位

**machine.PWRON_RESET ** **machine.HARD_RESET ** **machine.WDT_RESET ** **machine.DEEPSLEEP_RESET ** machine.SOFT_RESET

唤醒

machine.WLAN_WAKE machine.PIN_WAKE machine.RTC_WAKE

Pin dddI2CSPIUARTLCDRTCPWMADCWDTTIMER

network – 网络功能配置模块

wlan

PIN machine.Pin machine.Pin 类是 machine 模块下面的一个硬件类,用于对引脚的配置和控制,提供对 Pin 设备的操作方法。

Pin 对象用于控制输入/输出引脚(也称为 GPIO)。Pin 对象通常与一个物理引脚相关联,他可以驱动输出电压和读取输入电压。Pin 类中有设置引脚模式(输入/输出)的方法,也有获取和设置数字逻辑(0 或 1)的方法。

一个 Pin 对象是通过一个标识符来构造的,它明确地指定了一个特定的输入输出。标识符的形式和物理引脚的映射是特定于一次移植的。标识符可以是整数,字符串或者是一个带有端口和引脚号码的元组。在 RT-Thread MicroPython 中,引脚标识符是一个由代号和引脚号组成的元组,如 Pin((“PB15”, 31), Pin.OUT_PP) 中的 (“PB15”, 31)。

构造函数 在 RT-Thread MicroPython 中 Pin 对象的构造函数如下:

class machine.Pin( id, mode = -1, pull = -1,value) id :由用户自定义的引脚名和 Pin 设备引脚号组成,如 (“PB15”, 31),“PB15” 为用户自定义的引脚名,31 为 RT-Thread Pin 设备驱动在本次移植中的引脚号。

mode : 指定引脚模式,可以是以下几种:

Pin.IN :输入模式 Pin.OUT :输出模式 Pin.OPEN_DRAIN :开漏模式 pull : 如果指定的引脚连接了上拉下拉电阻,那么可以配置成下面的状态:

None :没有上拉或者下拉电阻。 Pin.PULL_UP :使能上拉电阻。 Pin.PULL_DOWN :使能下拉电阻。 value : value 的值只对输出模式和开漏输出模式有效,用来设置初始输出值。

方法 Pin.init(mode= -1, pull= -1, *, value, drive, alt) 根据输入的参数重新初始化引脚。只有那些被指定的参数才会被设置,其余引脚的状态将保持不变,详细的参数可以参考上面的构造函数。

Pin.value([x]) 如果没有给定参数 x ,这个方法可以获得引脚的值。 如果给定参数 x ,如 0 或 1,那么设置引脚的值为 逻辑 0 或 逻辑 1。

Pin.name() 返回引脚对象在构造时用户自定义的引脚名。

Pin.irq(handler=None, trigger=(Pin.IRQ_RISING)) 配置在引脚的触发源处于活动状态时调用的中断处理程序。如果引脚模式是, Pin.IN 则触发源是引脚上的外部值。 如果引脚模式是, Pin.OUT 则触发源是引脚的输出缓冲器。 否则,如果引脚模式是, Pin.OPEN_DRAIN 那么触发源是状态’0’的输出缓冲器和状态’1’的外部引脚值。

参数:

handler 是一个可选的函数,在中断触发时调用 trigger 配置可以触发中断的事件。可能的值是: Pin.IRQ_FALLING 下降沿中断 Pin.IRQ_RISING 上升沿中断 Pin.IRQ_RISING_FALLING 上升沿或下降沿中断 Pin.IRQ_LOW_LEVEL 低电平中断 Pin.IRQ_HIGH_LEVEL 高电平中断 常量 下面的常量用来配置 Pin 对象。

选择引脚模式: Pin.IN Pin.OUT Pin.OPEN_DRAIN 选择上/下拉模式: Pin.PULL_UP Pin.PULL_DOWN None 使用值 None 代表不进行上下拉。

选择中断触发模式: Pin.IRQ_FALLING Pin.IRQ_RISING Pin.IRQ_RISING_FALLING Pin.IRQ_LOW_LEVEL Pin.IRQ_HIGH_LEVEL 示例一 控制引脚输出高低电平信号,并读取按键引脚电平信号。

from machine import Pin PIN_OUT = 31 PIN_IN = 58 p_out = Pin(("PB15", PIN_OUT), Pin.OUT_PP) p_out.value(1) # set io high p_out.value(0) # set io low p_in = Pin(("key_0", PIN_IN), Pin.IN, Pin.PULL_UP) print(p_in.value() ) # get value, 0 or 1

示例二 上升沿信号触发引脚中断后执行中断处理函数。

from machine import Pin PIN_KEY0 = 58 # PD10 key_0 = Pin(("key_0", PIN_KEY0), Pin.IN, Pin.PULL_UP) def func(v): print("Hello rt-thread!") key_0.irq(trigger=Pin.IRQ_RISING, handler=func)

更多内容可参考 machine.Pin 。

维护人: 华为奋斗者精神, 邮箱:[email protected]


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭